home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
fb386
/
jimen
/
jimen.bas
next >
Wrap
BASIC Source File
|
1994-06-01
|
25KB
|
415 lines
100 '
110 '「私は、地面です。」
120 '松山 真也
130 '
140 'ニタイトルのデータ名 ニエンディングのデータ名
150 TI$="Q:\EARTH\TIK1.TIF" :EN$="Q:\EARTH\TIK3.TIF"
160 TC=3 :EC=10
170 'ニPCMのデータ名 ニFMのデータ名
180 PC$="Q:\FJ\\PCM\RYM_ALL5.PMB" :FM$="Q:\FJ\FM\FM_1.FMB"
190 '
200 SCREEN@ 0:COLOR 7,0:CLS:RANDOMIZE TIME
210 MOUSE 0:MOUSE 3,0,8:MOUSE 4,32,0,256,255:TE=0:JI=1:H0=-1:H1=-1:TA=-1:STT=29:JJI=5
220 BGM 1:PLAY OFF:PART 0,6:PART 1,0:CD STOP:ST=0:AT=1:BT=1:CT=1:N=0:MO3=8
230 LOAD@ PC$:LOAD@ FM$
240 'キャラ
250 DIM A%(256),AA%(1024),B%(256),C%(256),BB0%(256),I0%(256),AMP(STT,15,13)
260 DIM BB1%(256),BB2%(256),J%(256),I1%(256),I2%(256),O%(256),MP(15,13),PA%(2560)
270 DIM I3%(256),I4%(256),I5%(256),I6%(256),II%(256),TS%(11088),TT%(11088),SO$(30),SST(STT)
280 SCREEN@ 1:LINE(0,0)-(15,7),PSET,[0,0,180],BF
290 LINE(0,0)-(15,0),PSET,[0,0,255]:LINE(0,0)-(0,7),PSET,[0,0,255]
300 LINE(0,7)-(15,7),PSET,[0,0,120]:LINE(15,0)-(15,7),PSET,[0,0,120]
310 GET@A(0,0)-(15,15),J%:CLS:SCREEN@ 0:GOSUB *CO
320 LINE(0,0)-(15,15),PSET,%11,BF
330 LINE(0,0)-(15,0),PSET,%12:LINE(0,0)-(0,15),PSET,%12
340 LINE(0,15)-(15,15),PSET,%10:LINE(15,0)-(15,15),PSET,%10
350 GET@A(0,0)-(15,15),BB0%:CLS
360 LINE(0,0)-(15,15),PSET,%8,BF
370 LINE(0,0)-(15,0),PSET,%9:LINE(0,0)-(0,15),PSET,%9
380 LINE(0,15)-(15,15),PSET,%7:LINE(15,0)-(15,15),PSET,%7
390 GET@A(0,0)-(15,15),BB1%:CLS
400 LINE(0,0)-(15,15),PSET,%5,BF
410 LINE(0,0)-(15,0),PSET,%6:LINE(0,0)-(0,15),PSET,%6
420 LINE(0,15)-(15,15),PSET,%4:LINE(15,0)-(15,15),PSET,%4
430 GET@A(0,0)-(15,15),BB2%:CLS
440 SCREEN@ 1:S=3.14159!/4/15
450 FOR I=15 TO 0 STEP -1
460 SS=15-I:C=COS(S*SS)*SIN(S*SS)*2*165+90
470 XY=15-(15-I)/2:CIRCLE(XY,XY),I,[0,0,C],,,,F
480 NEXT:GET@A(0,0)-(30,30),AA%:CLS:PUT@A(0,0)-(30,30),AA%,,.25!,.25!
490 GET@A(0,0)-(15,15),A%:CLS:SCREEN@ 0:GOSUB *CO
500 LINE(1,5)-(14,10),PSET,%2,BF
510 LINE(1,5)-(14,5),PSET,%3:LINE(1,5)-(1,10),PSET,%3
520 LINE(1,10)-(14,10),PSET,%1:LINE(14,5)-(14,10),PSET,%1
530 LINE(0,0)-(15,15),PSET,%15,B
540 GET@A(0,0)-(15,15),I0%
550 LINE(0,0)-(15,15),PSET,%14,B:GET@A(0,0)-(15,15),I1%:CLS
560 SYMBOL(0,0),"B",1,1,%3,,,1:LINE(0,0)-(15,15),PSET,%15,B
570 GET@A(0,0)-(15,15),I3%:CLS
580 SYMBOL(0,1),"R",1,1,%13,,,1:LINE(0,0)-(15,15),PSET,%15,B
590 GET@A(0,0)-(15,15),I4%:CLS
600 SYMBOL(0,1),"S",1,1,%11,,,1:LINE(0,0)-(15,15),PSET,%15,B
610 GET@A(0,0)-(15,15),I5%:CLS
620 SYMBOL(0,-3),"↓",1,1,%13,,,9:LINE(7,0)-(8,2),PSET,%0,BF
630 LINE(0,0)-(15,15),PSET,%15,B
640 GET@A(0,0)-(15,15),I2%:CLS
650 FOR I=0 TO 256
660 O%(I)=-32768
670 IF J%(I)=0 THEN J%(I)=-32768
680 IF A%(I)=0 THEN A%(I)=-32768:B%(I)=-32768:C%(I)=-32768:GOTO 700
690 B%(I)=A%(I)*32:C%(I)=A%(I)*1057
700 NEXT
710 DEF SPRITE 0,0,J%,1:DEF SPRITE 0,4,J%,1:DEF SPRITE 0,8,J%,1
720 DEF SPRITE 0,12,J%,1:DEF SPRITE 0,16,J%,1:DEF SPRITE 0,20,J%,1
730 DEF SPRITE 0,24,J%,1:DEF SPRITE 0,28,J%,1:DEF SPRITE 0,32,J%,1
740 DEF SPRITE 0,36,J%,1:DEF SPRITE 0,40,J%,1:DEF SPRITE 0,44,J%,1
750 DEF SPRITE 0,48,J%,1:DEF SPRITE 0,52,J%,1:DEF SPRITE 0,56,J%,1
760 DEF SPRITE 0,60,J%,1:DEF SPRITE 0,64,O%,1:DEF SPRITE 0,68,O%,1
770 DEF SPRITE 0,72,O%,1:DEF SPRITE 0,76,O%,1:DEF SPRITE 0,80,O%,1
780 DEF SPRITE 0,84,O%,1:DEF SPRITE 0,88,O%,1:DEF SPRITE 0,92,O%,1
790 DEF SPRITE 0,96,O%,1:DEF SPRITE 0,100,O%,1:DEF SPRITE 0,104,O%,1
800 DEF SPRITE 0,108,O%,1:DEF SPRITE 0,112,O%,1:DEF SPRITE 0,116,O%,1
810 DEF SPRITE 0,120,O%,1:DEF SPRITE 0,124,A%,1:DEF SPRITE 0,128,B%,1
820 DEF SPRITE 0,132,C%,1:DEF SPRITE 1,0,(112,212),56,16,1
830 DEF SPRITE 1,16,(124,204),124,1,1
840 '
850 LINE(0,0)-(111,98),PSET,%11,BF
860 LINE(8,8)-(103,90),PSET,%0,BF
870 LINE(0,0)-(111,98),PSET,%12,B
880 LINE(7,7)-(104,91),PSET,%10,B
890 LINE(111,0)-(111,98),PSET,%10
900 LINE(111,98)-(0,98),PSET,%10
910 LINE(104,7)-(104,91),PSET,%12
920 LINE(104,91)-(7,91),PSET,%12
930 SYMBOL(13,8),"BALL SELECT",.5!,1,%3
940 SYMBOL(40,34),"B",1,1,%3,,,1:SYMBOL(40,52),"R",1,1,%13,,,1
950 SYMBOL(40,70),"S",1,1,%11,,,1
960 SYMBOL(56,34),"×",1,1,%12,,,1
970 SYMBOL(56,52),"×",1,1,%12,,,1
980 SYMBOL(56,70),"×",1,1,%12,,,1
990 GET@A(0,0)-(111,98),TS%:CLS:SPRITE ON:SPRITE SCREEN(64,0)
1000 '
1010 FOR I=0 TO 14:SO$(I)="%L"+STR$(15-I):NEXT
1020 FOR I=16 TO 30:SO$(I)="%R"+STR$(I-15):NEXT:SO$(15)="%C"
1030 '面DATAをREAD
1040 RESTORE 2750:FOR M=0 TO (STT+1)/3-1:FOR Y=0 TO 13:FOR I=0 TO 2
1050 READ A$:FOR X=0 TO 15:A=VAL(MID$(A$,X+1,1))
1060 AMP(M*3+I,X,Y)=A:NEXT X,I,Y,M:GOSUB *TITLE
1070 '画面表示
1080 LINE(24,12)-(295,240),PSET,%11,BF
1090 LINE(24,12)-(295,240),PSET,%12,B
1100 LINE(31,19)-(288,240),PSET,%10,B
1110 LINE(295,12)-(295,240),PSET,%10
1120 LINE(288,20)-(288,240),PSET,%12,BF
1130 LINE(32,20)-(287,240),PSET,%0,BF
1140 NN=0:FOR Y=0 TO 13:FOR X=0 TO 15:A=AMP(SST(ST)-1,X,Y):MP(X,Y)=A
1150 ON A GOSUB 1160,1170,1180,1190,1200,1210,1220,1230,1240:GOTO 1260
1160 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB1%:NN=NN+1:RETURN
1170 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:NN=NN+1:RETURN
1180 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=10:RETURN
1190 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=11:RETURN
1200 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=12:RETURN
1210 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=13:RETURN
1220 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=14:RETURN
1230 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=15:RETURN
1240 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB0%:RETURN
1250 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB0%:RETURN
1260 NEXT X,Y:GOTO *TSELECT
1270 '初期設定
1280 MOUSE 4,32,0,31+(15-JI)*16,255:MOUSE 1,(15-JI)*8+32
1290 CO=10:CC=.4!:HA=0:IF TA=-1 THEN TYY=-2 ELSE TYY=-4.3!
1300 '
1310 '玉発射
1320 M=MOUSE(9):SPRITE 6,0,M:SPRITE 6,16,M:MM0=MOUSE(2,0):MM1=MOUSE(2,1)
1330 IF MM0=-1 THEN TXX=-1 ELSE IF MM1=-1 THEN TXX=1 ELSE 1320
1340 '地面移動
1350 SPRITE 6,0,MOUSE(9)
1360 '玉移動
1370 TX=SPRITE(16,6):TY=SPRITE(16,7):XA=INT((TX+4)/16):YA=INT((TY-16)/16)
1380 IF TX+TXX<0 OR TX+TXX>246 THEN TXX=-TXX:PLAY OFF:PLAY ,"@73G16"
1390 IF TY+TYY<20 THEN TYY=-TYY:PLAY OFF:PLAY ,"@73G16"
1400 IF TXX>0 THEN 1580
1410 A=INT((TX+TXX)/16)
1420 ON MP(A,YA) GOSUB 1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570:SPRITE 6,16,TXX:GOTO 1600
1430 TXX=H0*TXX:TE=TE+ABS(TYY)*5:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:N=N+1:PLAY OFF:PLAY "@1>C16<":RETURN
1440 TXX=H1*TXX:TE=TE+ABS(TYY)*5:MP(A,YA)=1:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%:PLAY OFF:PLAY "@1C16":RETURN
1450 TXX=-TXX:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:IF JI=JJI THEN RETURN ELSE PLAY OFF:PLAY ,"@73C16D16":JI=JI+1:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
1460 TXX=-TXX:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:IF JI=0 THEN RETURN ELSE PLAY OFF:PLAY ,"@73D16C16":JI=JI-1:HA=0:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
1470 TXX=-TXX:TA=-TA:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN *GG
1480 TXX=-TXX:AT=AT+1:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
1490 TXX=-TXX:BT=BT+1:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
1500 TXX=-TXX:CT=CT+1:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
1510 TXX=-TXX:PLAY OFF:PLAY ,"@73G16":RETURN
1520 TXX=-TXX:MP(A,YA)=3:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I0%:PLAY OFF:PLAY "@1C16":RETURN
1530 TXX=-TXX:MP(A,YA)=4:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I1%:PLAY OFF:PLAY "@1C16":RETURN
1540 TXX=-TXX:MP(A,YA)=5:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I2%:PLAY OFF:PLAY "@1C16":RETURN
1550 TXX=-TXX:MP(A,YA)=6:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I3%:PLAY OFF:PLAY "@1C16":RETURN
1560 TXX=-TXX:MP(A,YA)=7:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I4%:PLAY OFF:PLAY "@1C16":RETURN
1570 TXX=-TXX:MP(A,YA)=8:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I5%:PLAY OFF:PLAY "@1C16":RETURN
1580 A=INT((TX+TXX+7)/16)
1590 ON MP(A,YA) GOSUB 1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570:SPRITE 6,16,TXX
1600 IF TYY>0 THEN 1780
1610 A=INT((TY+TYY-20)/16)
1620 ON MP(XA,A) GOSUB 1630,1640,1650,1660,1670,1680,1690,1700,1710,1720,1730,1740,1750,1760,1770:GOTO 1800
1630 TYY=H0*TYY:TE=TE+ABS(TYY)*5:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:N=N+1:PLAY OFF:PLAY "@1>C16<":RETURN
1640 TYY=H1*TYY:TE=TE+ABS(TYY)*5:MP(XA,A)=1:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%:PLAY OFF:PLAY "@1C16":RETURN
1650 TYY=-TYY:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:IF JI=JJI THEN RETURN ELSE PLAY OFF:PLAY ,"@73C16D16":JI=JI+1:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
1660 TYY=-TYY:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:IF JI=0 THEN RETURN ELSE PLAY OFF:PLAY ,"@73D16C16":JI=JI-1:HA=0:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
1670 TYY=-TYY:TA=-TA:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN *GG
1680 TYY=-TYY:AT=AT+1:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
1690 TYY=-TYY:BT=BT+1:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
1700 TYY=-TYY:CT=CT+1:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
1710 TYY=-TYY:PLAY OFF:PLAY ,"@73G16":RETURN
1720 TYY=-TYY:MP(XA,A)=3:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I0%:PLAY OFF:PLAY "@1C16":RETURN
1730 TYY=-TYY:MP(XA,A)=4:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I1%:PLAY OFF:PLAY "@1C16":RETURN
1740 TYY=-TYY:MP(XA,A)=5:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I2%:PLAY OFF:PLAY "@1C16":RETURN
1750 TYY=-TYY:MP(XA,A)=6:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I3%:PLAY OFF:PLAY "@1C16":RETURN
1760 TYY=-TYY:MP(XA,A)=7:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I4%:PLAY OFF:PLAY "@1C16":RETURN
1770 TYY=-TYY:MP(XA,A)=8:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I5%:PLAY OFF:PLAY "@1C16":RETURN
1780 A=INT((TY+TYY-13)/16):IF MP(XA,A)>0 AND TA=1 THEN TYY=TYY/1.1!
1790 ON MP(XA,A) GOSUB 1630,1640,1650,1660,1670,1680,1690,1700,1710,1720,1730,1740,1750,1760,1770
1800 '重力のやつ
1810 IF TA=-1 THEN SPRITE 6,16,,TYY:GOTO 1830
1820 TYY=TYY+.05!:SPRITE 6,16,,TYY
1830 'はね返す
1840 TY=SPRITE(16,7):IF TY<206 THEN 1930
1850 IF TY>228 THEN 1890
1860 TX=SPRITE(16,6):X=SPRITE(0,6)
1870 IF TX-X>-5 AND TX-X<JI*16+13 AND TY<220 THEN HA=HA+1:IF TA=1 THEN HA=0:TYY=-4.3! ELSE TYY=-ABS(TYY) ELSE 1930
1880 SPRITE 6,16,,-4:PLAY OFF:PLAY "@7>C16<":TXX=CINT((TX-X-4-JI*8)/(5.3!+JI*.8!)):IF TXX=0 THEN TXX=-1+INT(RND*2)*2:GOTO 1930 ELSE 1930
1890 JI=1:HA=0:TXX=1:TYY=1:PLAY OFF:PLAY ">@6C1<":IF AT+BT+CT=1 THEN *END
1900 IF H0=-1 AND H1=-1 THEN AT=AT-1 ELSE IF H0=-1 AND H1=1 THEN BT=BT-1 ELSE CT=CT-1
1910 SPRITE 0,0,0:SPRITE 0,16,0:SPRITE 6,16,124-SPRITE(16,6),204-SPRITE(16,7):SPRITE 6,0,112-SPRITE(0,6)
1920 TA=-1:SPRITE 1,0,56:MOUSE 4,32,0,254,255:WAIT 200:GOTO *TSELECT
1930 '
1940 G$=INKEY$:IF G$="G" OR G$="g" THEN 1890 ELSE IF G$="P" OR G$="p" THEN GOSUB *PAUSE
1950 '
1960 TX=SPRITE(16,6):SS=INT((TX)/8.1!)
1970 IF SS<>SSS THEN PLAY OFF:PLAY SO$(SS),SO$(SS):SSS=SS
1980 '
1990 IF TA=-1 THEN IF JI>0 THEN IF HA>(16-JI)*5 THEN HA=0:GOSUB *SP
2000 GOSUB *CO2:FOR I=0 TO (JJI-JI+1)*8:NEXT:IF N=NN THEN *CLEAR ELSE 1340
2010 *TITLE:OUT &H440,27:OUT &H442,0:SPRITE OFF
2020 SCREEN@ 1:LOAD@ TI$,(-15,3)
2030 SYMBOL(48,60),"私も、地面です。",2,4,[0,100,255],,,9
2040 SYMBOL(98,180),"マウスの左ボタンを押して下さい。",.5!,1,[255,120,0],,,8:CD PLAY TC
2050 WHILE MOUSE(2,0)=0:WEND:GOSUB *RR:SCREEN@ 0:GOSUB *SC:GOSUB *CO
2060 *JSP
2070 MOUSE 4,32,0,254,255:CLS:CD STOP:MOUSE 1,144:X=112:XX=MOUSE(9):SPRITE 0,0,1
2080 SYMBOL(16,100),"地面の速さ"+AKCNV$(STR$(256-MO3)),2,3,%3,,,1:CD PLAY 7
2090 M1=MOUSE(2,0):M2=MOUSE(2,1):XX=MOUSE(9):SPRITE 6,0,XX
2100 IF M1=-1 AND M2=-1 THEN 2160
2110 IF MO3=1 AND M1=-1 OR MO3=255 AND M2=-1 THEN 2090
2120 IF M2=-1 THEN MO3=MO3+1 ELSE IF M1=-1 THEN MO3=MO3-1 ELSE 2090
2130 MOUSE 3,0,MO3:LINE(208,100)-(304,148),PSET,0,BF
2140 A$=AKCNV$(STR$(256-MO3)):SYMBOL(176,100),A$,2,3,%3,,,1
2150 GOTO 2090
2160 SPRITE 0,0,0:SPRITE 6,0,112-SPRITE(0,6):CD STOP:CLS:RETURN 1070
2170 *GG:IF TA=-1 THEN TYY=-2 ELSE TYY=-4.3!
2180 HA=0:SPRITE 6,16,SPRITE(0,6)+JI*8+4-SPRITE(16,6),204-SPRITE(16,7):GOTO 1310
2190 *CLEAR
2200 IF ST=STT THEN *ENDING ELSE ST=ST+1:PLAY OFF:SYMBOL(120,104),"CLEAR",1,2,%13,,,9:CD PLAY 10
2210 CDSTAT CC%:IF CC%(1)=0 OR MOUSE(2,0)=-1 THEN 2220 ELSE 2210
2220 CD STOP:TXX=1:TYY=2:SPRITE 0,0,0:SPRITE 0,16,0:SPRITE 6,0,(15-JI)*8-SPRITE(0,6):SPRITE 6,16,124-SPRITE(16,6),204-SPRITE(16,7):N=0:GOTO 1070
2230 *SP:IF ABS(TYY)<5 THEN IF TYY<0 THEN TYY=TYY-1 ELSE TYY=TYY+1
2240 RETURN
2250 *TSELECT:GET@A(104,71)-(215,169),TT%:MY=0:MYY=0
2260 PUT@A(104,71)-(215,169),TS%:MOUSE 1,,0:MOUSE 3,1,4
2270 SYMBOL(160,105),AKCNV$(STR$(AT)),1,1,%12,,,1
2280 SYMBOL(160,123),AKCNV$(STR$(BT)),1,1,%12,,,1
2290 SYMBOL(160,141),AKCNV$(STR$(CT)),1,1,%12,,,1:GOTO 2310
2300 MYY=MY:MY=INT(MOUSE(1)/86):IF MOUSE(2,0)=-1 THEN 2330 ELSE IF MY=MYY THEN 2300
2310 LINE(127,MYY*18+105)-(142,MYY*18+120),PSET,0,BF:SYMBOL(127,MY*18+105),"→",1,1,%13,,,1
2320 GOTO 2300
2330 IF MY=0 AND AT=0 OR MY=1 AND BT=0 OR MY=2 AND CT=0 THEN BEEP:GOTO 2300
2340 IF MY=0 THEN H0=-1:H1=-1:SPRITE 1,16,124 ELSE IF MY=1 THEN H0=-1:H1=1:SPRITE 1,16,128 ELSE H0=1:H1=-1:SPRITE 1,16,132
2350 SPRITE 0,16,1:SPRITE 0,0,1:WAIT 50
2360 PUT@A(104,71)-(215,169),TT%:GOSUB *GI:GOTO 1270
2370 *END:WAIT 200:PLAY OFF:SYMBOL(88,104),"GAME OVER",1,2,%13,,,9:SYMBOL(80,140),"SCORE"+STR$(TE),2,1,%12,,,8:CD PLAY 9
2380 IF MOUSE(2,0)=-1 THEN CD STOP:CON=1:SST=ST ELSE IF MOUSE(2,1)=-1 THEN CD STOP:CON=0 ELSE 2380
2390 SPRITE 0,0,0:SPRITE 0,16,0:SPRITE 6,0,112-SPRITE(0,6):SPRITE 6,16,124-SPRITE(16,6),204-SPRITE(16,7):SPRITE 1,0,56:SPRITE 1,16,124:AT=1:BT=1:CT=1:TE=0:H0=-1:H1=-1:ST=0:N=0:TA=-1
2400 IF CON=1 THEN *CONTINUE ELSE GOSUB *TITLE
2410 *CONTINUE:LINE(32,20)-(287,239),PSET,0,BF:ST=SST:GOSUB *JSP
2420 *ENDING:CLS:SPRITE 0,0,0:SPRITE 0,16,0:ST=0:OUT &H440,27:OUT &H442,0
2430 SPRITE OFF:SCREEN@ 1:LOAD@ EN$:CD PLAY EC
2440 SYMBOL(16,80),"おめでとう!",3,5,[0,255,0],,,9
2450 CDSTAT CC%:IF CC%(1)=0 THEN CLS:GOTO *END ELSE 2450
2460 *PAUSE:GET@A(120,104)-(199,135),PA%:SYMBOL(120,104),"PAUSE",1,2,%13,,,9
2470 IF INKEY$<>" " THEN 2470
2480 PUT@A(120,104)-(199,135),PA%:RETURN
2490 *GI
2500 IF INKEY$="" THEN RETURN ELSE 2500
2510 *SC
2520 SPRITE ON:SPRITE SCREEN(64,0):RESTORE 2540:FOR I=0 TO 4:READ A,B,C:OUT &H440,A:OUT &H442,B
2530 OUT &H443,C:NEXT
2540 DATA 11,172,0, 12,202,2, 14,6,4, 16,6,4, 27,17,17
2550 RETURN
2560 *CO'色設定
2570 RESTORE 2580:FOR I=1 TO 15:READ C0,C1,C2:PALETTE I,[C0,C1,C2]:NEXT
2580 DATA 0,0,120, 0,0,180, 0,0,255, 120,0,0, 180,0,0, 255,0,0, 120,120,0
2590 DATA 180,180,0, 255,255,0, 120,120,120, 180,180,180, 255,255,255
2600 DATA 0,255,0, 0,255,0, 0,0,255
2610 RETURN
2620 *CO2
2630 CO=CO+CC:IF INT(CO)=12 OR INT(CO)=1 THEN CC=-CC
2640 PALETTE 15,[INT(CO)*16-16,0,255]:PALETTE 14,[192-INT(CO)*16,255,0]
2650 RETURN
2660 *RR
2670 FOR I=0 TO STT-1
2680 SS=INT(RND*(STT-I+1)):IF I=STT-1 AND SS=0 THEN 2720 ELSE IF SS=0 THEN 2680 ELSE KK=0:J=0
2690 IF SST(J)=0 THEN KK=KK+1
2700 IF SS<>KK THEN J=J+1:GOTO 2690
2710 SST(J)=I+1
2720 NEXT:FOR I=0 TO STT-1:IF SST(I)=0 THEN SST(I)=STT
2730 NEXT:SST(STT)=STT+1:RETURN
2740 'DATA
2750 DATA 5000000000000005,0000000000000000,0000000000000004
2760 DATA 0602000000004040,0049000000009400,0812121212121212
2770 DATA 0999900000099990,1111111571111111,0000000000000000
2780 DATA 0000001111000000,0000009999000000,2121212121212150
2790 DATA 2222000000002222,3200001111000011,0000000000000000
2800 DATA 0000099229900000,1111000000001111,0312121212121212
2810 DATA 0012121212121200,9299000110009939,0000000000000000
2820 DATA 0021212121212100,1111110000111111,2121212121212170
2830 DATA 2222000550002222,2222222222222222,0000000000000000
2840 DATA 3312000000002133,0000000000000000,0312121212121214
2850 DATA 9999000000009999,0000001111000000,0000000000000000
2860 DATA 0009000000009000,1000000000000001,0000000000000000
2870 DATA 0000000000000000,0000000000000000,0000000000000000
2880 DATA 0000000000000000,9990000000000999,0000000000000000
2890 '
2900 DATA 4320000000000136,0000000000000454,2222222222222222
2910 DATA 4320000000000134,0212121212121215,2111111111111112
2920 DATA 2220092442900112,0921212121212121,2123000000003212
2930 DATA 0000009219000000,0112121212121212,2122000000002212
2940 DATA 0111109129011110,0921212991212121,2122222222222212
2950 DATA 0000094554900000,0212121992121212,2130110760110312
2960 DATA 0000000110000000,0921212121212127,2100220550220012
2970 DATA 0090001221000900,0112121212121218,2100000990000012
2980 DATA 0001012222101000,0919291929493969,2100990000990012
2990 DATA 0000921991290000,0000000000000000,2100000000000012
3000 DATA 0000000000000000,0000000000000000,2000000000000002
3010 DATA 0000000000000000,0000000000000000,2000000000000002
3020 DATA 0000000000000000,0000000000000000,0000000000000000
3030 DATA 0030000000000400,0000000000000000,3944444874444493
3040 '
3050 DATA 9922222442222299,1202101202101209,0000000000000000
3060 DATA 9900005115000099,2101202101202109,0222222222222220
3070 DATA 1030000110000301,0000000010000000,0200000000000020
3080 DATA 1009090220909001,0210120000021012,0200111111110020
3090 DATA 1000100220010001,0120210222012021,0200113333110020
3100 DATA 1009090330909001,0000000282000000,0200113333110020
3110 DATA 2222322442232222,1305209222907209,0200113333110020
3120 DATA 2244111331114422,4102409000902109,0200113333110020
3130 DATA 1111222211112222,0010010000010010,0200111111110020
3140 DATA 0000000000000000,0000000000000000,0200000000000020
3150 DATA 0000000000000000,0000000000000000,0292929229292920
3160 DATA 0000000000000000,0000000000000000,0000000000000000
3170 DATA 0000000000000000,0000000000000000,0000000000000000
3180 DATA 4406600990066044,0000000000000000,9444444994444449
3190 '
3200 DATA 1212121212121212,3212121442121215,2000000990000002
3210 DATA 1700223546220042,1700000000000062,0000000990000000
3220 DATA 1200222222220022,2099999229999901,0000000000000000
3230 DATA 1020000000000202,1091212112121902,1111111111111111
3240 DATA 1509999119999042,2092100000012901,6434343434343436
3250 DATA 1020000000000202,1091099229901902,6343434343434346
3260 DATA 1300000000000032,2092092222901901,3434343434343434
3270 DATA 1222222211111112,1091093333901902,3333333333333333
3280 DATA 1111111552222222,2092294444922901,4545454545454545
3290 DATA 1000000000000002,1000090000900002,9494949494949494
3300 DATA 1000000000000002,0000000000000000,0000000000000000
3310 DATA 1000000000000002,0000000000000000,0000000000000000
3320 DATA 0000000000000000,0000000000000000,0000000000000000
3330 DATA 4505454004545054,8300000440000038,0044004400440044
3340 '
3350 DATA 9000000000000009,8000000000000000,3403333333333034
3360 DATA 0092191212324100,0902222222111991,4403400000043033
3370 DATA 0010000000000500,0000000000000091,0000009999000000
3380 DATA 9090942129190909,2121212121212191,0205009449005020
3390 DATA 0020200000090200,0205020502030491,0209900000099020
3400 DATA 0010303000010100,0101010101010191,0201111221111020
3410 DATA 9020402917920209,2030203020202091,0200000000000020
3420 DATA 0010100000000100,1010101010101091,0202932112392020
3430 DATA 0020592315219200,6399449922994491,2200992992990034
3440 DATA 9010000000000009,3422222222222291,0000000000000000
3450 DATA 0000000000000000,0000000000000000,2222002222002222
3460 DATA 0000000000000000,0000000000000000,0000000000000000
3470 DATA 0000000000000000,0000000000000000,0000000000000000
3480 DATA 0000000000000000,0000000000000000,0000000000000000
3490 '
3500 DATA 2222222225522220,9920001221001093,0002000012001131
3510 DATA 2000000000000000,3940009209001099,0422122202201231
3520 DATA 0912222322222390,0020209029001002,0402000200201231
3530 DATA 0910000000000090,2030209109001000,0402090230401221
3540 DATA 0913344334433490,2020209019314111,0202090200401221
3550 DATA 0910000000000090,2030409209001000,0202090222001221
3560 DATA 0912222222222290,5030409029001022,0202892000001221
3570 DATA 0910000000000094,0020204322234992,0200999999901221
3580 DATA 7212222222222223,0020000001000000,0200490000002221
3590 DATA 9911111111111199,9999999999000000,0220000222022221
3600 DATA 0000000000000000,0000000000000000,0222522222222221
3610 DATA 0000000000000000,0000000000000000,0000000000000000
3620 DATA 0000000000000000,0000000000000000,0000000000000000
3630 DATA 0000000000000000,4045040455000000,0000000000000000
3640 '
3650 DATA 1111111111111111,3000000000000003,2000000000000002
3660 DATA 1236222222225321,2200000320000022,2200000000000022
3670 DATA 1242222222222421,2220000230000222,2420000000000232
3680 DATA 1220111111110221,2220000000000222,2432999999992432
3690 DATA 1220022222200221,2220002222000222,2244200990024432
3700 DATA 1220004334000221,2220002002000222,2223320990224432
3710 DATA 1220900440090221,2220022002200222,2252439999223432
3720 DATA 1220000000000221,0000222222220000,2222342992224432
3730 DATA 1200999999990021,0099999999999900,2444342992224432
3740 DATA 9000000000000009,1111111111111111,2222222992222222
3750 DATA 0000000000000000,0000002432000000,0000000530000000
3760 DATA 9999000000009999,0000000000000000,0000000000000000
3770 DATA 0000000000000000,0000000000000000,0000000000000000
3780 DATA 0000000000000000,0000000000000000,0000000000000000
3790 '
3800 DATA 7222222222222200,9111111111111119,0122244999022124
3810 DATA 0020000000000000,1111111111111111,0200244449000500
3820 DATA 0033222222222229,1111111111111111,0200999909990600
3830 DATA 0000000000000100,1111111111111111,2110980000790121
3840 DATA 0099999999999400,1111111991111111,0020900000090202
3850 DATA 0020000000000000,1111111991111111,0210933333390202
3860 DATA 0032222334434349,1111111111111111,0020967887690202
3870 DATA 0000000000000000,1111111111111111,0210999999990202
3880 DATA 4999999999999900,1111111111111111,0020000002000200
3890 DATA 4444444444444511,9111111111111119,0213341221222100
3900 DATA 0000000000000000,4334433854433443,0000004000000000
3910 DATA 0000000000000000,0000000000000000,0000000000000000
3920 DATA 0000000000000000,0000000000000000,0000000000000000
3930 DATA 0000000000000000,0000000000000000,0000000000000000
3940 '
3950 DATA 0000000000000000,0000000000000000,0000003003000000
3960 DATA 5022222222222990,0999999439999990,2222599009952222
3970 DATA 0000000000020590,0900000000000090,0000009229000000
3980 DATA 0122221222210590,0902432992342090,2299999229999922
3990 DATA 0200002000000590,0901010000101090,0090000000000900
4000 DATA 0122121099999990,0903042552304090,4397999999998934
4010 DATA 0200200090043330,0904000110003090,0090000000000900
4020 DATA 0202122093999999,0902500110052090,5599999339999955
4030 DATA 0122122290000000,0900030000400090,2222219339122222
4040 DATA 0000000099999990,0999999009999990,0000000000000000
4050 DATA 0000000000000092,0000000000000000,0000000000000000
4060 DATA 0000000000000000,0000000000000000,0000000000000000
4070 DATA 0000000000000000,0000000000000000,0000000000000000
4080 DATA 0000000000000000,0000000000000000,0000000000000000
4090 '
4100 DATA 4444444444444444,0000000000000000,6222222222222226
4110 DATA 0000000000000000,0999999999999990,1919191919191919
4120 DATA 0000009009000000,0111111111111114,2222222222222222
4130 DATA 1111119009222222,0939999999999999,1919191919191919
4140 DATA 1111119009222222,0911111111111111,5555555555555555
4150 DATA 1111119009222222,0999999999999994,2929292929292929
4160 DATA 1111119559222222,0911111111111111,6373836373836373
4170 DATA 1111115005222222,0939999999999999,1919191919191919
4180 DATA 1111115005222222,0911111111111115,3333333333333333
4190 DATA 4444445005444444,5999999999999992,1919191919191919
4200 DATA 9999999009999999,0555555555555555,3333333333333333
4210 DATA 0000000000000000,0333333333333333,0000000000000000
4220 DATA 0000000000000000,0000000000000000,0000000000000000
4230 DATA 0000000000000000,0000000000000000,0000000000000000